//deck.h
/********************************************************************************
*																				*
*	Author:			Vanessa Starkey												*
*	Assignment:		Assignment 8												*
*	Class:			CPS-151														*
*	Instructor:		V. Starkley													*
*	Due Date:		November 7													*
*																				*
*	This file declares the deck class.											*
*																				*
********************************************************************************/


#ifndef CARD_H
#define CARD_H

#include  <iostream>
using namespace std;

//define a Suit type
enum Suit {C, D, H, S};

//define a Value type
enum Value {Two=2, Three, Four, Five, Six, Seven, Eight, Nine, Ten,
				Jack, Queen, King, Ace};

//declare the Card class
class Card
{
	public:

		Card();
		//creates an uninitialized card

		Card(Suit s, Value v);
		//creates a card with Suit s and Value v

		friend class Deck;	
		//allows entire Deck class to access private variables of Card
		//Deck class will initialize the Cards when the deck is created

   
		Suit getSuit();
		//pre:  none
		//post: returns C if clubs, D if diamonds, H if hearts, S if spades

		Value getValue();
		//pre: none
		//post: returns theValue of the card

      
		bool operator ==(const Card& c);
		//pre:  none
		//post: returns true if self is equal to c in both value and suit; false if not

		bool operator !=(const Card& c);
		//pre:  none
		//post: returns true if self is not equal to c in either value or suit; false if equal
	      
		friend ostream& operator << (ostream& fout, const Card& c);
		//pre:  fout is open for output
		//post: c has been displayed to fout

   private:
   		Suit theSuit;
		Value theValue;
};




#endif